/*
 * RSFLoat.h
 *
 *  Created on: 2010/03/17
 *      Author: alexandre
 */

#ifndef RSFLOAT_H_
#define RSFLOAT_H_

#include "RSValueElement.h"

namespace Realsphere {

    class RSFloat : public Realsphere::RSValueElement {
        Q_OBJECT
        public:
            RSFloat ( );
            RSFloat ( const QString& rScopeId );
            RSFloat ( const float& rValue );
            RSFloat ( const QString& rScopeId, float& rValue );

            RSValueType                     ValueType () const;
            RSDataSize                      SizeOf () const;
            RSDataPointer                   DataPointer();
            QString                         ToString () const;

            float                           Value () const;

        public slots:
            void                            SetValue ( const float& rValue, bool rEmit = true );
            void                            SetValue ( const RSFloat& rValue, bool rEmit = true );

        public:
            RSFloat&                        operator=( const float& rValue );
            RSFloat&                        operator=( const RSFloat& rValue );

        private:
            float                           mValue;
    };
}
#endif /* RSFLOAT_H_ */
